2005-06-26 Matthias Clasen <mclasen@redhat.com>
+ * gtk/gtkhsv.c (gtk_hsv_grab_broken): Stop the drag if
+ the grab is broken.
+
* gtk/gtkcombobox.c (gtk_combo_box_popdown): Don't do
explicitly ungrab pointer and keyboard. We're unmapping
the grab window anyway.
2005-06-26 Matthias Clasen <mclasen@redhat.com>
+ * gtk/gtkhsv.c (gtk_hsv_grab_broken): Stop the drag if
+ the grab is broken.
+
* gtk/gtkcombobox.c (gtk_combo_box_popdown): Don't do
explicitly ungrab pointer and keyboard. We're unmapping
the grab window anyway.
2005-06-26 Matthias Clasen <mclasen@redhat.com>
+ * gtk/gtkhsv.c (gtk_hsv_grab_broken): Stop the drag if
+ the grab is broken.
+
* gtk/gtkcombobox.c (gtk_combo_box_popdown): Don't do
explicitly ungrab pointer and keyboard. We're unmapping
the grab window anyway.
GdkEventMotion *event);
static gint gtk_hsv_expose (GtkWidget *widget,
GdkEventExpose *event);
+static gboolean gtk_hsv_grab_broken (GtkWidget *widget,
+ GdkEventGrabBroken *event);
static gboolean gtk_hsv_focus (GtkWidget *widget,
GtkDirectionType direction);
static void gtk_hsv_move (GtkHSV *hsv,
widget_class->motion_notify_event = gtk_hsv_motion;
widget_class->expose_event = gtk_hsv_expose;
widget_class->focus = gtk_hsv_focus;
+ widget_class->grab_broken_event = gtk_hsv_grab_broken;
hsv_class->move = gtk_hsv_move;
gdk_cursor_unref (cursor);
}
+static gboolean
+gtk_hsv_grab_broken (GtkWidget *widget,
+ GdkEventGrabBroken *event)
+{
+ GtkHSV *hsv = GTK_HSV (widget);
+ HSVPrivate *priv;
+
+ priv = hsv->priv;
+
+ priv->mode = DRAG_NONE;
+
+ return TRUE;
+}
+
/* Button_press_event handler for the HSV color selector */
static gint
gtk_hsv_button_press (GtkWidget *widget,